package com.semis.business.base.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.semis.common.annotation.Excel;
import com.semis.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.IndexedColors;

import java.util.Date;

/**
 * 地块系统数据对象 bas_land_system
 *
 * @author litu
 * @date 2023-07-17
 */
@Data
@ToString
@NoArgsConstructor
@Accessors(chain = true)
@TableName("bas_land_system")
@ApiModel(value = "BasLandSystem", description = "地块系统数据实体")
public class BasLandSystem extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty("主键")
    private String id;

    /**
     * 省份
     */
    @Excel(name = "省份")
    @ApiModelProperty("省份")
    private String province;

    /**
     * 市
     */
    @Excel(name = "市")
    @ApiModelProperty("市")
    private String city;

    /**
     * 行政区
     */
    @Excel(name = "行政区", dictType = "com_district", comboDictType = "com_district", headerBackgroundColor = IndexedColors.DARK_RED, required = true)
    @ApiModelProperty("行政区")
    private String district;

    /**
     * 地块名称
     */
    @Excel(name = "地块名称", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("地块名称")
    private String name;

    /**
     * 地块编码
     */
    @Excel(name = "地块编码", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("地块编码")
    private String code;

    /**
     * 是否是超标地块
     */
    @Excel(name = "是否是超标地块", dictType = "bas_land_system_exceeding", comboDictType = "bas_land_system_exceeding")
    @ApiModelProperty("是否是超标地块")
    private String isExceeding;

    /**
     * 是否在风险管控与修复名录
     */
    @Excel(name = "是否在风险管控与修复名录", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否在风险管控与修复名录")
    private String isDirectory;

    /**
     * 是否移出风险管控与修复名录清单
     */
    @Excel(name = "是否移出风险管控与修复名录清单", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否移出风险管控与修复名录清单")
    private String isInventory;

    /**
     * 调查报告评审是否通过
     */
    @Excel(name = "调查报告评审是否通过", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("调查报告评审是否通过")
    private String isReview;

    /**
     * 调查报告评审时间（会议时间）
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "调查报告评审时间", dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("调查报告评审时间（会议时间）")
    private Date reviewTime;

    /**
     * 风险评估报告评审是否通过
     */
    @Excel(name = "风险评估报告评审是否通过", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("风险评估报告评审是否通过")
    private String isRiskReview;

    /**
     * 效果评估报告评审是否通过
     */
    @Excel(name = "效果评估报告评审是否通过", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("效果评估报告评审是否通过")
    private String isEffectReview;

    /**
     * 地块占地面积
     */
    @Excel(name = "地块占地面积")
    @ApiModelProperty("地块占地面积")
    private Float landArea;

    /**
     * 中心经度
     */
    @Excel(name = "中心经度", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("中心经度")
    private Float longitude;

    /**
     * 中心纬度
     */
    @Excel(name = "中心纬度", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("中心纬度")
    private Float latitude;

    /**
     * 地块位置
     */
    @Excel(name = "地块位置")
    @ApiModelProperty("地块位置")
    private String location;

    /**
     * 行业类别
     */
    @Excel(name = "行业类别")
    @ApiModelProperty("行业类别")
    private String industry;

    /**
     * 使用权人
     */
    @Excel(name = "使用权人", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("使用权人")
    private String franchisee;

    /**
     * 统一社会信用代码
     */
    @Excel(name = "统一社会信用代码", headerBackgroundColor = IndexedColors.DARK_RED, required = true, prompt = "必填")
    @ApiModelProperty("统一社会信用代码")
    private String creditCode;

    /**
     * 地理信息
     */
    @ApiModelProperty("地理信息")
    private String gisFile;

    /** 现状用地类型 */
    @Excel(name = "现状用地类型")
    @ApiModelProperty("现状用地类型")
    private String useType;

    /** 前任土地使用权人 */
    @Excel(name = "前任土地使用权人")
    @ApiModelProperty("前任土地使用权人")
    private String predecessor;

    /** 地块类别 */
    @Excel(name = "地块类别")
    @ApiModelProperty("地块类别")
    private String type;

    /** 地块调查开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "地块调查开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("地块调查开始日期")
    private Date surveyStartTime;

    /** 地块调查结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "地块调查结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("地块调查结束日期")
    private Date surveyEndTime;

    /** 是否上传地块调查报告 */
    @Excel(name = "是否上传地块调查报告", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否上传地块调查报告")
    private String isSurveyReport;

    /** 专业机构及第三方法人名称（中文） */
    @Excel(name = "专业机构及第三方法人名称（中文）")
    @ApiModelProperty("专业机构及第三方法人名称（中文）")
    private String specialistAgencies;

    /** 是否上传地块检测报告 */
    @Excel(name = "是否上传地块检测报告", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否上传地块检测报告")
    private String isExaminingReport;

    /** 分析测试／检测单位法人名称（中文） */
    @Excel(name = "分析测试／检测单位法人名称（中文）")
    @ApiModelProperty("分析测试／检测单位法人名称（中文）")
    private String detectionDepartment;

    /** 超标指标 */
    @Excel(name = "超标指标")
    @ApiModelProperty("超标指标")
    private String exceedanceIndex;

    /** 地块规划用途类型 */
    @Excel(name = "地块规划用途类型")
    @ApiModelProperty("地块规划用途类型")
    private String usageType;

    /** 是否移出调查名录地块清单 */
    @Excel(name = "是否移出调查名录地块清单", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否移出调查名录地块清单")
    private String isRemoveSurvey;

    /** 是否在风险评估名录 */
    @Excel(name = "是否在风险评估名录", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否在风险评估名录")
    private String isRiskAssessment;

    /** 是否移出风险评估名录地块清单 */
    @Excel(name = "是否移出风险评估名录地块清单", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否移出风险评估名录地块清单")
    private String isRemoveRiskAssessment;

    /** 是否开展效果评估 */
    @Excel(name = "是否开展效果评估", dictType = "sys_yes_no", comboDictType = "sys_yes_no")
    @ApiModelProperty("是否开展效果评估")
    private String isEffectAppraisal;

    /** 所在阶段 */
    @Excel(name = "所在阶段")
    @ApiModelProperty("所在阶段")
    private String presentStage;

    /** 政策依据 */
    @Excel(name = "政策依据")
    @ApiModelProperty("政策依据")
    private String policyBasis;

    /** 坐标系 */
    @Excel(name = "坐标系")
    @ApiModelProperty("坐标系")
    private String coordinate;

    /** 地块四至范围 */
    @Excel(name = "地块四至范围")
    @ApiModelProperty("地块四至范围")
    private String fourRange;

    /** 风险评估报告评审时间（会议时间） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "风险评估报告评审时间（会议时间）", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("风险评估报告评审时间（会议时间）")
    private Date riskAssessmentTime;

    /** 效果评估报告评审时间（会议时间） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "效果评估报告评审时间（会议时间）", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("效果评估报告评审时间（会议时间）")
    private Date effectAppraisalTime;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    private String delFlag;

    /**
     * 行政区回显
     */
    @TableField(exist = false)
    private String districtName;

}
